perm filename NOTICE[UP,DOC]13 blob sn#040059 filedate 1973-05-09 generic text, type T, neo UTF8
00050	*25 Feb 1972	NOTICEs	LES
00100	
00150	This file, kept in  NOTICE[UP,DOC],  is intended  to  function  as  a
00200	computerized  bulletin  board.     System  programmers  and CUSP file
00250	contributors are invited to disseminate  information  concerning  new
00300	programs  and  system  features  by adding notices to this file.  The
00350	format is arbitrary, except that the first line (and only the first
00400	line) should begin with a "*" and should contain three fields in the
00450	form
00500	 *<date><TAB><subject><TAB><programmer initials>
00550	In the date field, the year, month and day may be given in any order
00600	and the year may be abbreviated to 2 digits, but the month must be
00650	given as 3 or more letters.
00700	
00750	*9 Jan 1973	NEWS	LES
00800	To get selective listings from the NOTICE file, say "R  NEWS",  which
00850	will respond with an asterisk and expect a query such as
00900	 *March 15
00950	This asks for all notices posted since the ides of March. If the  day
01000	is  omitted,  1  is  assumed;  if  the  month  is omitted, January is
01050	assumed; if the year is omitted  (as  above)  the  last  instance  is
01100	assumed.
01150	
01200	 *Nov<TAB>SAIL
01250	is an example of a more general kind if query.   This  asks  for  all
01300	notices  since  last  November  1  that  contain  the  string  "SAIL"
01350	somewhere in the subject field, with any  case  differences  ignored.
01400	The search could be made more specific by saying
01450	 *NOV<TAB>SAIL<TAB>DCS
01500	which delivers only such notices written by Dan Swinehart.
01550	
01600	If  the  query begins with a <TAB>, so that the date is omitted, then
01650	all dates will be accepted.   Similarly, the  Subject  field  may  be
01700	omitted. A null query outputs the entire NOTICE file.
01750	
01800	If you would like the output to be spooled, type "*" at  the  end  of
01850	your query, e. g.
01900	 *July 4, 1776	Sex*
01950	If you would like to see title lines only, put a "-" at the end.  You
02000	can use both "*" and "-" together in either order.
02050	
02100	If you forget all this, type "?<return>" and this notice will  appear
02150	magically.
02200	
02250	*1 JAN 1972	DO	RPH
02300	Manual is in DO.RPH[S,DOC].
02350	
02400	*1 JAN 1972	DMAN	REG
02450	Dectape manager (PDP-10 format) -- see DMAN.REG[S,DOC].
02500	
02550	*1 JAN 1972	SPOOLER	REG
02600	See SPOOL.DOC[S,DOC].
02650	
02700	*1 JAN 1972	RSL SL WHAMS BAMS ETC	JHS
02750	Service Level Reservation System -- see RSL[S,DOC]
02800	
02850	
02900	*1 JAN 1972	Keyboard Commands	LES
02950	To get a summary of line editor  and  other  Monitor  commands,  list
03000	KEY.LES[S,DOC).
03050	
03100	*11 APR 1973	INFO	REM
03150	
03200	To have access to the REM information system, type "R INFO".
03250	The general form of command is "R INFO;<FILNAM>;<PRETYPE>"
03300	if you are an expert and know what that means.
03350	
03400	*1 Jan 1972	FINGER	LES
03450	
03500	To get a listing of the names of all users currently  logged  in  and
03550	their locations, say "R FINGER".
03600	
03650	*29 Feb 1972	"Sticky PPN's" (RPG, COMPILE)	DCS
03700	
03750	   A PPN specification [P,PN] appearing before a file name in an
03800	RPG command string will be used for all subsequent files which
03850	do not specify a PPN explicitly.  This default remains in effect
03900	until another "sticky PPN" is specified.
03950	   As an example, if I am running under [AIL,DCS]:
04000	
04050	    COMPILE SAIL=HEAD+DB+[S,AIL]SAIL+SYM+PARSE+PROD[AIL,DCS]+EXPR
04100	
04150	would write the output on [AIL,DCS], get HEAD,DB, and PROD from
04200	[AIL,DCS], and get SAIL, SYM, PARSE, and EXPR from [S,AIL].
04250	
04300	*1 Jan 1972	SAIL Statement Counter Profile	RES
04350	
04400	To find out how to get SAIL to give you execution frequency data for
04450	pieces of your program, list NEWMAN[S,AIL].
04500	
04550	*2 Mar 1972	CREF Default Listing Device	DCS
04600	
04650	The CREF default listing device has been changed from LPT to DSK.
04700	This change is not made in RPG mode (so that the CREF system
04750	command will still go directly to LPT).
04800	
04850	*14 Mar 1972	TV "." and <esc>I Features	DCS
04900	
04950	Typing "⊗." (see TVED.DCS[UP,DOC] for notation) will cause the current
05000	page to become a permanent part of the file (like "W" in SOS).  CANCEL
05050	will henceforth bring back this version, not the old one.
05100	
05150	To interrupt a "FIND" search prematurely, type <esc>I.  This replaces
05200	the "\<crlf>" method.
05250	
05300	*23 Mar 1972	TV for III	DCS
05350	The TV editor (though still officially unsupported) will now run on
05400	both Data-Disk and III.  In fact, you can transfer (by detach/attach)
05450	from one to the other in mid-edit!
05500	
05550	*30 APR 72	SEND	RPH
05600	SEND NOW HAS THE FOLLOWING FORMATS:
05650	
05700	SEND PN		SEND TO ALL PN'S
05750	SEND *		WRITE NOTICE.TXT
05800	SEND *,PN	SAME AS SEND PN
05850	SEND P,*	SEND TO ALL P'S
05900	SEND P,PN	SEND TO SPECIFIC P,PN
05950	SEND *,*	SAME AS SEND *
06000	A PN IS SOME PROGRAMMER NAME
06050	A P IS SOME PROJECT NAME
06100	
06150	*30 APR 72	FAIL	FW
06200	The double arrow character is no longer treated specially
06250	within the comment portion of a line.  When not within a
06300	comment, it is equivalent to a carriage-return, line-feed
06350	pair.  Now, within comments, it prints as itself.
06400	
06450	*3 JUN 1972	RAID	DCS
06500	A new version of RAID is on the system.  Since it is compatible with
06550	both Data-Disc and III consoles, I have put it on SYS: as both 
06600	RAID.REL and TVRAID.REL.  Therefore /V, /1V, /H, /1H will all load
06650	the same program.  Later, TVRAID will be phased out (of LOADER, RPG)
06700	and the numeric argument to H and V switches will be ignored.
06750	This version has been tested fairly carefully.  But report any
06800	problems you have to DCS, anyway.  The old files are saved as
06850	RAID.RLO and TVRAID.RLO on [CSP,SYS].
06900	
06950	The following things have been changed:
07000	__ There are a few display changes; in particular, the arrow
07050	   conventions of the Data-Disc RAID are now used everywhere.
07100	__ Byte mode input will be displayed in byte mode.
07150	__ Conditional breakpoints now work exactly as advertised.
07200	__ Symbol←Expr, Symbol:, and Symbol<ctrl>K now work properly.
07250	__ All opcodes work on input (incl. ANDCAM, ORCAB, etc.)
07300	
07350	The following new features have been added:
07400	__ There are three new entries to the dispatch table preceding
07450	   DDT (JOBDDT → DDT) -- see RAID.ON[S,DOC] for the meaning of
07500	   this table.  The three are:
07550		DDT-12:	→$RPTCNT	See below
07600		DDT-11: →$BGDDT		First word of DDT
07650		DDT-10: →DDTEND		Last word of DDT
07700	
07750	__ This is "Version 1" of RAID.  The version is henceforth stored
07800	   in the leftmost 13 bits of JOBDDT.  Since DDT and old RAID
07850	   contain 0 here, you can tell which you have loaded.  This is for
07900	   the benefit of programs which use new features -- they can
07950	   try alternate methods if the Version isn't high enough.
08000	__ If you insert a JSR $I in your program, you will effectively
08050	   place a breakpoint at that location.  You can proceed via <ctrl>P.
08100	   DO NOT single-step or set a breakpoint on this instruction!
08150	   $I is an INTERNAL symbol in RAID.  There is a pointer to it at
08200	   DDT-6.
08250	__ When you type <call>DDT<cr>, RAID will simulate a breakpoint at
08300	   the address specified by JOBOPC.  You can proceed with <ctrl>P.
08350	   Do not expect this to work if you enter DDT before running anything,
08400	   or if your program jumps to DDT (unless it stores a reasonable
08450	   address in JOBOPC first).
08500	__ n<ctrl><meta>S, where n is a number, will execute instructions
08550	   in multi-step mode, as it would if n were absent.  However, no
08600	   change will be made in  the display until:
08650	     1) n instructions have been executed (<ctrl>X'ed subr =1 instr.)
08700	     2) RAID must pause to get instructions at a subroutine call.
08750	     3) You interrupt the stepping by typing something, or a
08800		breakpoint is encountered.
08850	   After you respond at a type (2) pause, again the display remains
08900	   unchanged until one of the conditions occurs again.  If you
08950	   responded <ctrl>S or <ctrl>X to the pause, the count will be
09000	   exhausted before the display changes again -- barring type (3)
09050	   events.  The remaining count, if any, is always available in 
09100	    $RPTCNT.   This is useful for counting exact numbers of 
09150	     executions in a given routine, etc.
09200	__ Symbol<meta>K obliterates the Symbol.  Unlike <ctrl>K, which
09250	   simply eliminates typout of the symbol, this also makes it
09300	   undefined for typein.  If, for instance, you have two locations
09350	   with the name NM1, do:
09400		NM2←NM1		Assigns a new name to one of them.
09450		NM1<meta>K	Deletes this symbol completely.
09500		NM1;		Reveals value of the other NM1.  Now
09550				NM2 refers to the first.
09600	__ Macros:
09650	   Address<ctrl>M<letter> defines <ctrl><meta><letter> as
09700	   a macro.  When the macro is invoked, Address (it can be just
09750	   an address or a byte pointer value) will be put in $M-1 (see
09800	   RAID.ON[S,DOC].  This has the effect of evaluating the string
09850	   at Address before evaluating any more keyboard input -- expanding
09900	   the macro.  Be warned that many <ctrl><meta><letter> combinations
09950	   already mean something -- use one you can do without (the macro
10000	   takes precedence).
10050	*4 JUN 1972	NEW DISPLAY EDITOR	SRS
10100	
10150	there now exists a new display editor, called ED, available for
10200	experimentation.  to run it, type
10250	 RU ED[S,SRS]
10300	when it starts up, there will be some documentation on the screen.
10350		ED is presently experimental, and improving.  Features
10400	include:  editing several files at once, splitting screen between
10450	several files or strings, faster than TV in some cases.
10500	
10550	*6 JUN 1972	PUB MANUAL	TES
10600	
10650	A new version of PUB was put up today with some obscure bugs fixed.
10700	Indexes and headings now work well.  AFTER PAGE does not always
10750	work, but AFTER TEXT is usually equivalent and does work.
10800	If you must use old version, please tell me why! To use it, log in
10850	as 12,TES and RUN PUB.
10900	
10950	There is a new manual: SPOOL PUB.TES[S,DOC]/N/B   It is 80 PAGES long, so
11000	if you don't plan to use PUB for a few months, it is advisable to
11050	wait for the SAILON to be printed.  The new manual has an index
11100	and a tutorial for beginners, plus appendices with (untested) examples.
11150	To use PUB for simple purposes, only a portion of the manual needs to be
11200	read.
11250	
11300	*MAR 1972	LOGOUT	REG
11350	Recent changes to logout command.
11400	
11450		The logout command is used to terminate a job that was created
11500	by Login, Fork, or Cfork commands.  The usual form of the command is
11550	K or KJOB, typed at monitor level, followed by a carriage return.
11600	
11650		A new command is called KAT, which combines the features of the
11700	K command and the ATtach command.  KAT requires the job number of the
11750	job to which you want to attach.  As in the Attach command, if you
11800	are attaching to a job with a different PPN than the job you are leaving,
11850	you must supply the ppn of the job to which you are attaching.
11900	
11950		Command Formats
12000		Note that curly backets { and } denote optional
12050	arguments; pointy brackets < and > denote a symbolic item which  should
12100	be replaced by some concrete instantiation of that item.
12150	
12200	K or KJOB command:
12250	
12300	K{JOB}{/<switch list>}
12350	
12400	KA{TTACH} <job number> {[<project name>,<programmer name>{]}}{/<switch list>}
12450	
12500	Each command line is terminated by a carriage return.
12550	
12600		The item <switch list> consists of any sequence of letters
12650	chosen from the list below:
12700		THIS LIST HAS BEEN OMITTED BECAUSE I FORGOT THEM ALL.
12750	
12800	For further confusion, consult R. Gorin.
12850	*1969	DDT	WFW
12900	 The following changes have been made to DDT:
12950	
13000	 l.  Halfword printout is now of the form  A,,B  instead
13050	     of  (A)B.  Either form may be used on input.  The difference
13100	     is that  A,,B  truncates  A to 18  bits before 
13150	     swapping halves while  (A)B  does not.
13200	
13250	 2.  $U is a new output mode.  It is the same as $A$H.
13300	 3.  $F mode will now print normalized floating permit
13350	     numbers as decimal integers.  This means that
13400	     FORTRAN users may, in general, use $F to look at
13450	     all variables and they will be printed correctly 
13500	     either fixed or floating.
13550	
13600	 4.  If the address of a string of ASCIZ text is placed
13650	     in $nB+3, then whenever breakpoint  n  is reached,
13700	     DDT will act as if the characters in the string were
13750	     being read from the teletype.  If you are preparing 
13800	     such a string in advance use either  $ or ≠ (≠33 octal)
13850	     for altmode.
13900	
13950	5.   If a  bytepointer to an  asciz  string is placed in
14000	     $M-l, DDT will act as if the characters in the string
14050	     are being read from the teletype.
14100	
14150	 6.  $$7" <delimiter> characters <delimiter> will act just
14200	     like an  asciz   statement in MACRO or FAIL,i.e.,
14250	     more than one word will be filled with  asciz for 
14300	     the characters if necessary.  $$" will have a similar
14350	     effect but with sixbit.
14400	
14450	 7.  Typing <number>$$P will cause DDT to do an automatic
14500	     proceed  <number>  times instead of forever.
14550	
14600	 8.  When printing in  $$  mode, no word will be printed
14650	     out as an I/O instruction (COND, DATAO, CONI, etc.)
14700	     unless the device number is in a special table.  The
14750	     table is  10  words long and is in $I-1, $I-2, etc.
14800	     Simply put device number here to have the appropriate I/O
14850	     instructions printed.
14900	
14950	 9.  If an address is placed in  $M-2  then for each character
15000	     DDT wishes to output, a pushj 1,@$M-2 will be executed. 
15050	     This allows output to be redirected to some device 
15100	     other than the TTY.  The character is in register 5.  The
15150	     routine should preserve all AC's and end with a POPJ l,.
15200	
15250	10.  In byte mode output ($<number>0), if a size of 0
15300	     is specified, DDT will use a special mark in $M+2.
15350	     The boundry between 1 and 0 bits specifies the size
15400	     of the bytes.  For example, a word containing
15450	
15500			11111111111 00000000000 11100010110001
15550	
15600	     would print 2 . 11 bit bytes, 2 3 bit bytes, 2 1 bit
15650	     bytes, a 2 bit bytes, a 3 bit byte, and a 1 bit byte.
15700	
15750	11.  Bytes may be input of $<number>%.  This should be
15800	     followed by a string of unsigned octal numbers
15850	     separated by common and terminated by an altmode.  The 
15900	     number of bytes in a word is not integal the last
15950	     byte is treated as if the word were larger 
16000	     (bit number greater than 35).  This makes input compatible
16050	     with output.  A size of  O  uses the mark in $M+2
16100	     as above.
16150	
16200	12.  It is now possible to print flag words and  T  type
16250	     instruction (TRUN, TLNN, etc.) with suitable names
16300	     for the bit involved.  In $M+3 a pointer of the following
16350	     form is placed:
16400	
16450					_______
16500					|            |
16550	    _______      	|             |
16600	$M+3 |  L1 | T0  |		| Table 0    | 
16650					|            |
16700					_______
16750		
16800					
16850					_______
16900					|            |
16950					| Table 1    |
17000					|            |
17050					_______
17100	
17150					_______
17200					|	     |                
17250					| Table 2    |
17300					|	     |                
17350					_______
17400	     As many tables as desired may be included.  The pointer
17450	     to the last table should have 0 in the left half. Each
17500	     table contains 36 words.  The  nth  word contains the
17550	     RADIX50 for the name of bit n.  $<number>J  mode will
17600	     cause a word to be printed out using the bit names in
17650	     table number.  If an entry for a bit in 0, the numeric
17700	     value will be printed.  A typical word might look like
17750	
17800	              foo! baz! 123,, fool! garp! 2
17850	
17900	     $J means $0J.  $nL causes the left half to be
17950	     printed in symbolic and the right half to be printed in
18000		↑STODAT:
18050	     bit mode, using the names of the bits as if they appeared
18100	     in the left half. $<number>V prints the left half in symbolic
18150	     and the right half in bit mode.
18200	
18250	13.  You can now transfer to what is pointed to by the left half
18300	     of a word in the same manner as you transfer using <tab>.
18350	     The command is <control>].
18400	
18450	*FEB 1972	NEW WHO	DCS
18500	As of 12-9-71:
18550	
18600	1. WHO  will  run for about two minutes, then quit.  You can  reset
18650	   this time by issuing commands (see below).
18700	
18750	2. Typing <call> does not stop spacewar jobs.  However, after about
18800	   6 seconds of operation after a <call>, the spacewar portion of
18850	   WHO will bomb out (PC EXCEEDS MEM BOUNDS AT 377777).  This will
18900	   be made cleaner if the system types give me some help.
18950	
19000	3. WHO commands are now single-character commands.  WHO will not wait
19050	   for a carriage return before executing one.
19100	
19150	4. Previously, many lines of the WHO page were lost below the bottom
19200	  of the screen.  WHO now provides a "windowing" feature.   Type  "↑"
19250	  to  move  the  text  up,  so  that the line which did appear at the
19300	  center of the screen now appears at the top.  This reveals  several
19350	  new  lines  at  the  bottom.  A digit preceding the "↑" serves as a
19400	  repeat factor.
19450	 
19500	5. The "↓" command, with optional repeat factor, moves the text down
19550	   by a half-screenful, unless the first line already is displayed.
19600	
19650	6. The "E" command causes WHO to quit.  However, the last-drawn screen
19700	   will not be cleared.  So you can look at it.
19750	
19800	7. Any other character will cause WHO to clear the screen (revealing
19850	   your old page printer), then quit.
19900	*14 June 1972	VIDEO SWITCH DOCUMENTATION	LES
19950	A  SAILON  describing  the   video   switch   hardware   resides   in
20000	VDS.LES[S,DOC].  A description of keyboard commands and monitor calls
20050	for controlling the switch and DD channel allocation are described in
20100	VIDEO.LES[UP,DOC].  To  get  a  summary of the keyboard commands, say
20150	"HELP DISPLAY" or "SPOOL KEY.LES[UP,DOC]".
20200	
20250	*7 July 1972	DOCUMENTATION FILES	LES
20300	Online documentation files are divided into several areas, as follows.
20350		[P,DOC] contains the compiled version of the lab phone
20400			directory and other lists of people.
20450		[UP,DOC] contains user program descriptions (informal).
20500		[S,DOC] contains SAILONs, which are more formal descriptions
20550			of programs and hardware.
20600		[AIM,DOC] contains A. I. Memos, which report research results.
20650		[BIB,DOC] contains bibliographies of films, theses, SAILONs, etc.
20700	
20750	*23 JULY 1972	KLOG	RHT
20800	The KLOG command allows you to switch areas in one line.  Semantically
20850	it is LOGOUT, followed by LOGIN.  The syntax is:
20900	
20950	KLOG {/<logout switch>} {ppn spec (as you would type to LOGIN)}
21000	
21050	examples 
21100	
21150	KLOG 1/RHT
21200	
21250	KL/F 1|RHT
21300	
21350	KL 
21400	1,RHT
21450	
21500	*24 Jul 1972	SAIL	DCS,RHT,JRL
21550	LEAP news
21600	
21650		1. In the past global model users of LEAP were required
21700		   to have the statement:
21750			
21800			REQUIRE -1 NEW_ITEMS;
21850			
21900		   in order to inhibit the allocation of various tables
21950		   for the local leap model. This statement is no longer
22000		   required. Instead the decision to allocate the tables
22050		   will be made using the following criteria. The local model
22100		   tables will be allocated only if any of the programs loaded
22150		   together to form a single job contain any declared local
22200		   items ( that is, any items declared without the attribute
22250		   GLOBAL), or any of the programs contain  the statement:
22300			
22350			REQUIRE n NEW_ITEMS;
22400	
22450	       	   where "n" is greater that 0.
22500		   NOTE: this means that all users of local model LEAP must now
22550		   "require" new_items if they are going to dynamically create
22600		   non-global items by using the function NEW.(previously an
22650		   implicit REQUIRE 60 NEW_ITEMS was contained in every program).
22700	
22750	
22800		2. LEAP tables are now allocated as part of the SAIL initialization
22850		   code rather than on the first call to any LEAP subroutine.
22900		   The tables will be allocated if any of the SAIL programs
22950		   loaded contain declared items, itemvars, sets, lists or calls
23000		   to LEAP. This change was made so that datums of items could
23050		   be utilized before the first call to LEAP.
23100	
23150		3. The type codes for items have been altered. The new codes
23200		   returned by the TYPEIT function are as follows:
23250	
23300				0 - item deleted or never allocated
23350				1 - no type (no datum for this item)
23400				2 - item is bracketed triple
23450				3 - string
23500				4 - real
23550				5 - integer
23600				6 - set
23650				7 - list
23700				8 - procedure
23750			       16 - string array
23800			       17 - real array
23850	                       18 - integer array
23900			       19 - set array
23950			       20 - list array
24000			       21 - invalid (runtime has screwed something up)
24050	 	   The very astute user will notice that the only changes are to
24100		   up the codes for arrays and invalid by 5.
24150	
24200		IMPORTANT NOTE:This unfortunately will necesitate the recompilation
24250		and reloading of any programs which use array items as the RUNTIME 
24300		routines also use these type codes.The standard
24350		compiler  SAIL on [1,3] will have these changes as of 23:59 WED,
24400		jul26. Therefore if any of your programs use array items you should
24450		recompile them starting Thurs jul 27. Foist all complaints onto
24500		Jim Low.
24550	
24600	
24650	*25 Jul 1972	SPOOLER	REG
24700	SPOOLER NEWS:
24750		The old spooler '*LIST*' has been removed  from  the  system.
24800	Users of the spooling subroutines described in SPSUB.REG[UP,DOC] will
24850	have to reload with the new libraray.
24900	
24950		The command SPOOLQ has been removed. Instead, use the command
25000	QSPOOL.   This  has the advantage that the command can be abbreviated
25050	to one letter and the SPOOL command to two letters.
25100	
25150		A new SPOOL command is planned. This will allow users to more
25200	fully utilize features of the new spooler.
25250	
25300	*1 Aug 1972	FORTRAN	REG
25350	DEC FORTRAN version 25 and LIB40 version 31 have been put up.
25400	Some of the bugs in the compiler / operating system have been
25450	eliminated.
25500	
25550	*9 Aug 1972	DATA DISK	FW
25600	Two new features have been added to data disk DPYOUT:
25650	
25700	1) Overlapped mode, enabled by bit 0 of header word 0.
25750	   In this mode, a DPYOUT will return without waiting for
25800	   the transfer to be completed (although it will wait
25850	   for any previou transfer), enabling the program to
25900	   continue running. Header+2 will be set nonzero during
25950	   the transfer, and to zero after the transfer is complete,
26000	   so testing this is convenient (which should be done before
26050	   changing the buffer). A DPYOUT with a zero word count will
26100	   wait for a previous transfer without initiating a new one.
26150	
26200	2) Double field mode, useful for text output. This is enabled
26250	   by bit 1 of header word 0 and will cause the buffer to be
26300	   transferred twice, once on each field. Header+3 should specify
26350	   the address of the line address command word, which should
26400	   contain the low-order line address as the third command in
26450	   the word. Bit 24 of this word will be set to the proper
26500	   field on each transfer. This feature cannot be used if more
26550	   than one low-order line address command is used.
26600	
26650	*16 Aug 1972	AP NEWS (APE, HOT)	ME
26700	
26750	We have a line from the Associated  Press  (AP)  over  which  we  get
26800	national  and  international news.  The news that comes in gets filed
26850	on the disk and saved for about 24 hours.
26900	
26950	For use in reading the news, there are two programs on the system.
27000	
27050	Type "R HOT" to have the news typed on your console as it comes in.
27100	
27150	Type "R APE" to be able to selectively read the news that is on file.
27200	The  stories  are catagorized by keywords; to read the news, you type
27250	to APE whatever keywords you want to read about.  To  get  help  when
27300	you are running APE, type "?" and carriage return at any point. For a
27350	list of the keywords, TYPE the file WORDS.SRT[AP,SYS]  or  SPOOL  the
27400	file WORDS.LST[AP,SYS].
27450	
27500	For further information, see the file APE.ME[UP,DOC].
27550	
27600	
27650	*16 AUG 1972	SAIL MATRIX ROUTINES PACKAGE	SHK
27700	
27750	Following Matrix Routines Now Available:
27800	
27850	1) Real Matrix Multiplication Routine
27900		Multiplies two n-dimensional matrices (2-dimensional arrays)
27950		(size  m x n by n x p  to get a  m x p  matrix)
28000		or multiplies a 1-dimensional matrix by an n-dimensional matrix
28050		or an n-dimensional matrix by a 1-dimensional.
28100	MATMUL(REAL ARRAY A[a:b,c:d],REAL ARRAY B[c:d,e:f],REAL ARRAY C[a:b,e:f]);
28150		multiplies A by B and places the result in C
28200		(MATMUL(A,B,A) and MATMUL(A,B,B) are also valid.)
28250		The only thing it won't do (I think) is multiply two 1-dimensional
28300		matrices or n-dimensional arrays (n>2).
28350	
28400	2) Array Clear Routine
28450		MATCLR(REAL (or INTEGER) ARRAY A);
28500		Zeros the array A.
28550	
28600	3) Real Array Multiplied by a Real Constant
28650		CONMUL(REAL ARRAY A,REAL B);
28700		Multiplies array A by constant B and places the result in A.
28750	
28800	All three are available by saying REQUIRE "MATMUL[4,SHK]" LOAD_MODULE;
28850	
28900	
28950	*30 Aug 1972	UUO	SHK
29000	There is now a numerical listing of the UUO's - UUO.SHK[S,DOC]
29050	
29100	*4 Sept 1972	AP NEWS (APE, HOT)	ME
29150	 The AP news is now spooled once a day (at a somewhat random
29200	 time).  The listing, which will be kept in the conference
29250	 room, will indicate a file name of "APNEWS[AP,SYS]".
29300	
29350	*4 SEP 1972  FILDMP	RPH
29400	New program to list files in different formats. See FILDMP.RPH on UP,DOC.
29450	
29500	*4 SEP 1972  NEW SAIL	RHT
29550	 EFFECTIVE 1201 AM SAT, 26 AUG, A NEW SAIL SYSTEM  WILL  BE  UP.  ITS
29600	 SEGMENT  WILL  BE  SAISG4.  THIS NEW SYSTEM WILL INCLUDE SEVERAL NEW
29650	 FEATURES, INCLUDING USER REQUESTED  INITIALIZATIONS,  A  LOCATION(X)
29700	 FUNCTION,  AN  IMPLICIT  ARRAY:  MEMORY[0:MEMSIZE], THE RUDIMENTS OF
29750	 MULTIPLE PROCESSES, AND  MUCH  MORE.   WE  WILL  TRY  TO  HAVE  SOME
29800	 DOCUMENTATION READY BY THE LATTER PART OF THE WEEK.
29850	*22 SEP 1972	NEW SAIL	RHT,JRL,KVL
29900	 THE NEW SAIL SYSTEM IS UP. THERE ARE MANY NEW FEATURES INCLUDING
29950	 MULTIPLE-PROCESSES WITHIN JOBS,EVENTS, A LIMITED FORM OF BACKTRACKING
30000	 BETTER FOREACH STATEMENTS, BETTER ERROR RECOVERY ETC.
30050	
30100	 THE DOCUMENTATION FOR THE NEW FEATURES IS NOT YET AVAILABLE, BUT
30150	 EXAMPLES OF THE GLORY OF NEW SAIL ARE CONTAINED IN PAPER.DOC[S,JRL]
30200	 NEWFEA.TXT[S,JRL].
30250	
30300	 THE NEW SYSTEM USES SAISG4, LIBSA4, HLBSA4, AND FOR YOU GLOBAL
30350	 MODEL HACKERS GLBS10. 
30400	
30450	 NO SOURCE LANGUAGE INCOMPATIBILITIES ARE KNOWN, BUT OF COURSE
30500	 ALL PROGRAMS LOADED TOGETHER SHOULD BE COMPILED WITH THE
30550	 NEW COMPILER, AND OLD PROGRAMS SHOULD BE RECOMPILED BEFORE THEYY
30600	 ARE RELOADED.
30650	
30700	
30750	 OLD DUMP FILES SHOULD CONTINUE TO RUN FOR A WHILE UNTIL
30800	 SAISG3 IS DELETED.
30850	
30900	 SEND COMPLAINTS AND BUGS TO S,AIL OR SEE JRL,KVL OR RHT
30950	 A CURRENT LISTING WILL BE APPRECIATED. BETTER SERVICE
31000	 WILL BE GIVEN IF YOU ARE ABLE TO TICKLE THE BUG IN A SMALL
31050	 PROGRAM WITHOUT UNREADABLE MACROS.
31100	
31150	 FOR THE NEXT COUPLE DAYS WE WILL KEEP THE PREVIOUS COMPILER
31200	 AROUND AS SAIL.921[1,3], SAILOW.REL AS SAILOW.921, AND
31250	 GLBLOW.REL AS GLBLOW.921.  IF YOU FEEL YOU ARE BEING
31300	 SCREWED BY SOME TERRIBLE BUG, YOU CAN, FOR INSTANCE,
31350	 SAY SOMETHING LIKE
31400	 
31450	 R SAIL.921 <CR>
31500	 * FOO←FOO <CR>
31550	 * LOADER!
31600	 * SAILOW.921[1,3],FOO <ALT>
31650	 
31700	 WHERE THE STARS ARE TYPED BY THE SYSTEM
31750	 
31800	 THIS WILL GIVE YOU THE EFFECT OF DOING 
31850	 
31900	 LOA /COM FOO
31950	 
32000	 USING THE PREVIOUS SYSTEM.  
32050	
32100	*22 Sept 1972	Upper Segment RAID and DDT	TVR
32150	RAID or DDT may be retrieved from the disk  and  run  from  an  upper
32200	segment.  This means your core image may contain RAID at a much lower
32250	cost (102 octal words instead of 12200 words for RAID).  For  details
32300	see DEBUG.DOC[1,TVR]
32350	
32400	*22 Sept 1972	AP NEWS (APE)	ME
32450	Multiple word keywords are now implemented in APE.  To use them,
32500	separate the individual words with spaces in your keyword exressions.
32550	
32600	Also, to have only the first few lines of each story you select
32650	typed out, type an "F" at the beginning of the story selection
32700	line ("Read which one(s)?").  If you use both "F" and "=" on
32750	the same line, the order is irrelevant.  When you use the "F"
32800	feature, you cannot spool or save the stories in a file.
32850	
32900	For details on using APE, see the file APE.ME[UP,DOC].
32950	
33000	*12 Oct 1972	FAIL	TVR
33050	FAIL has been changed to stop at each error and give  the  option  to
33100	continue  to next error, continue automatically or to edit.  The edit
33150	
33200	option will call SOS if there are line numbers and TVED if not.   Any
33250	complaints  should be sent to TVR.  If you don't want to stop at each
33300	error, give FAIL the switch (F).  The old version is FAIL.OLD[1,3].
33350	*21 Oct 1972	SAIL	JRL,RHT,KVL
33400	A new SAIL compiler has been put up to correct bugs reported in the
33450	last few weeks. There should be no incompatibitlies with the preceding
33500	compiler and programs compiled with the previous compiler should
33550	be runable with programs compiled with the new compiler. Thus, there
33600	is no need to recompile or even reload SAIL programs which have
33650	been compiled since SEPT 21.  If you do have a program which
33700	compiled in the last month but doesn't now:
33750		1. REPORT THE PROBLEM TO A SAIL HACKER - or send
33800		   a message to AIL, including such details as
33850		   where a copy of the offending program is and the
33900		   nature of the SAIL bug.
33950	        2. You may use the previous compiler by
34000		   R  SAIL.102
34050	           * FOO←FOO
34100	           * <call>
34150	           where  FOO is the name of your sail program and  <call>
34200		   represents the typing of the CALL button (the stars are
34250		   typed by the system). The above sequence is equivalent to
34300		   the system level command:
34350	
34400			COM /COM FOO
34450	
34500	A note to users of multiple processes and matching procedures:
34550		To initialize the multiple process environment the user
34600	        should include the following declaration:
34650	
34700		   EXTERNAL PROCEDURE MAINPR;
34750	
34800		He should also make sure this procedure is called before
34850	        doing any process sprouting or matching procedure calling.
34900		This is best done by using the REQUIRE INITIALIZATION feature
34950	        or by making:
35000		   MAINPR;
35050	        The first executable statement of your program.
35100	This initialization will be compiled in, in the near future but until
35150	then the above hack is required.
35200	*3 Nov 1972	USER INTERRUPTS	FW
35250	The PC stored on a memory protect interrupt via the new-style
35300	user interrupt system is now the exact PC stored by the hardware,
35350	rather than being incremented as it used to be. This is consistent
35400	both with the old-style (DEC) user interrupt system and with the
35450	"ILL MEM REF AT USER xxxxxx" typeout. If you really care about
35500	the exact value of this PC, consult me or the PDP-10 flowcharts,
35550	as it is anything but consistent.
35600	*3 Nov 1972	VIDEO SWITCH	FW
35650	The VDSMAP UUO now allows the 6 extra switch channels to be
35700	addressed by setting bit 9 in the AC and putting the channel number
35750	(0-5) in the TTY# field (11-17).
35800	
35850	*8 Nov 1972	DUMPS	REG
35900	DART, a new program to back up disk  files  on  tapes,  is  available.
35950	system commands DUMP, RESTORE, TLIST, REWIND, BACKSPACE, ADvANCE all
36000	run DART now, instead of DAEMON (CAUTION: new syntax in some cases).
36050	See DART.REG[UP,DOC].
36100	
36150	*8 Nov 1972	PROTECTION	REG
36200	The  file  access  protection  bit  400,  which   formerly   had   no
36250	signifigance,  now  means  'Dump  Never' in DART.  All files that had
36300	used this bit have been renamed without it.
36350	
36400	*11 Nov 1972	SYSTEM	REG
36450	The job table JOBQUE in the system now contains either the positive 
36500	or negative value of the queue code of a job. Formerly, it had
36550	always been negative.
36600	
36650	*26 Nov 1972	FTP	DCS
36700	A new FTP has been installed with the following features:
36750	
36800	 1) You needn't type the MODE, TYPE, or BYTE commands at all
36850	    unless you want to change the defaults of S, I, and 36 resp.
36900	    Changing them is inadvisable since we only support those
36950	    settings.  The defaults will be to the foreign host just
37000	    before the first data transfer.
37050	
37100	 2) RSTR clears any DATA connections that the FTP thinks it has
37150	    open.  Sometimes it's wrong.  If you get an indication from
37200	    FTP that a command is illegal because the DATA connection already
37250	    exists, do this command.  It will go away when hacks in FTP
37300	    have been cured.
37350	
37400	 3) QUOT sends the rest of the line directly over the net, so you
37450	    can use it to execute other peoples commands which are either
37500	    nonstandard or just unsupported here.  This won't do any good
37550	    if our end has to be involved in the operation, but it is good
37600	    to do things like STAT (status), and HELP at CMU.
37650	 See FTP.DCS[UP,DOC] for "complete" information about our FTP,
37700	 and NIC document 10596 for complete FTP protocol description.
37750	
37800	*26 Nov 1972	MLISP2	DAV
37850	A new version of MLISP2 has been put on the system.  An old version
37900	exists and will be around for one week.  The main motivation for
37950	the changes was to fix several serious bugs,
38000	and to clean the language up prior to publishing a manual.
38050	Changes:
38100		(1) Variable names can no longer be literals (e.g. IF, FOR, ...).
38150		(2) <IDEXP>, <ADDEDEXPR> have been subsumed by <EXPRESSION>.
38200		(3) SPECIAL variables now must be declared at translation (PARSE)
38250			time.  To facilitate this, a new production has been added,
38300			having the form:	SPECIAL <identifier_list>
38350			It is strongly suggested that all SPECIAL variables be
38400			declared at the top of the program using this production.
38450		(4) ?# in the syntax (to inhibit scanning) should now be just #.
38500			It no longer takes up a syntax position.
38550		(5) Setting variables in backtracking contexts is now done with
38600			real LISP numbers (formerly machine representation).
38650			A function CONTEXT() gets the current backtracking
38700			context.  X{CONTEXT()/10 + 3} ← etc. is now legal.
38750		(6) THE FOLLOWING CHANGE IS TEMPORARY; WILL BE FIXED IN A DAY OR 2:
38800		(*) Prefixes are more restricted in use; the syntax is
38850			<PREFIX>  <SIMPEX>  as always, but IF, FOR, CASE, etc.
38900			are no longer <SIMPEX>'s but are now full <EXPRESSION>'s.
38950			Thus RETURN IF ..., PRINT CASE ..., etc. no longer work;
39000			use  RETURN(IF ..., PRINT(CASE ..., etc.
39050		(7) The syntax of SELECT has been changed.  Use SUCCESSOR instead
39100			of NEXT, and FINALLY instead of IN WHICH CASE.
39150			E.g. SELECT CAR(L) FROM L:'(A B C) SUCCESSOR CDR(L)
39200				UNLESS NULL(L) FINALLY FAILURE()
39250		(8) MLISP2.PRI now prints as it goes along, instead of at the end.
39300	
39350	*3 Dec 1972	SAIL	RHT
39400	A new SAIL system will be put up at 2359 Thursday, 7 Dec 1972
39450	This system will include 
39500		(1) Leap revisions by JRL.  This means that any programs
39550			that use LEAP should be recompiled.
39600		(2) User required initializations will take place as
39650			the first executable statement of the main
39700			program (after outer block arrays have been
39750			initialized). Programs that are loaded
39800			with any .REL files which have user initializations
39850			should have their main programs recompiled.
39900		(3) Hooks into the user interrupt system have been provided.
39950			Those interested should see Russ Taylor.
40000		(4) A new kind of declaration has been provided:
40050			CLEANUP proc1,proc2,proc3;
40100		    Where proc1, etc. are names of (parameterless)
40150		    procedures.  The effect of a CLEANUP declaration 
40200		    is to cause the named procedures to be called
40250		    whenever the block in which it occurs is exited,
40300		    whether by falling through the end, doing a go_to,
40350		    or by any other means.  These procedures will be
40400		    called before any local arrays, sets, or lists are
40450		    released.  The calls will take place in the order
40500	 	    specified.  Thus:
40550	
40600			BEGIN
40650			INTEGER I;
40700			PROCEDURE FOO;I←1;
40750			BEGIN
40800			INTEGER ARRAY X[0:I];
40850			PROCEDURE BAZ;OUTSTR(CVS(X[I]);
40900			CLEANUP FOO,BAZ;
40950			:
41000			COMMENT NOW WHEN THIS BLOCK IS EXITED, X[1] WILL
41050				BE PRINTED OUT;
41100	
41150			:
41200			END;
41250			END;
41300	
41350		(5) various minor modifications to the process stuff.
41400	
41450	The new segment is SAISG5.SEG, the libraries are LIBSA5.REL
41500	& HLBSA5.REL.  
41550	
41600	The old compiler will be SAIL.D07[1,3]
41650	
41700	*12 Dec 72	AP NEWS (APE)	ME
41750	There is now a full search feature in APE.  If you  type  in  a  word
41800	that  is  not in the keyword dictionary, APE will tell you so and ask
41850	you if you wish a "Full search?".  If you type Y, the news file  will
41900	be  searched  for the specified keyword.  If you type ?, a (complete)
41950	summary of this feature will be typed out (try  it!).   If  you  type
42000	anything else, no search will be done.  You may interrupt a search in
42050	progress by typing any character.  (That means you may not type ahead
42100	during a search.)
42150	
42200	Note:   Every  word not in the dictionary causes a separate search to
42250	take place and will require you to say Y to "Full search?".
42300	
42350	Special note:  Normally the whole news file is searched, taking 8  to
42400	10   seconds,  but  if  a  non-keyword  is  the  second  part  of  an
42450	intersection (eg, NIXON * JJ), then only the  necessary  stories  are
42500	searched.
42550	
42600	*12 DEC 72	PUB	TES
42650	PUBMAC.DFS[1,3] has been edited to correct an error in INDEX creation.
42700	The old version is PUBMAC.OLD[1,3] for a few weeks.
42750	
42800	The PUB manual has been deleted from the disk.  The abstract remains
42850	on PUB.TES[S,DOC].  Bound copies are in the SAILON file drawer.
42900	
42950	In January, a new-SAIL PUB should be up with several obscure but
43000	annoying bugs removed.  Major restrictions and bugs now known:
43050		SEND INDEX ⊂ ... ⊃	must be all on one line
43100		See {PAGE X}		must be followed by a non-word-break
43150						such as  ) , ; ] .
43200						but definitely not a SPACE
43250		NARROW, WIDEN, VARIABLE only work within a block -- not at top-level.
43300		TURN OFF "}" inside blocks doesn't always work right (just for "}")
43350		↓_abc_abc_abc_↓ seems not to work right in FILL mode someplaces.
43400		Footnotes hack a lot, esp. if the page fills up during one.
43450	
43500	*23 Jan 73	AP NEWS (APE)	ME
43550	A new version of APE has  been  put  on  the  system.   The  new  APE
43600	includes several changes to input formats, particularly where file or
43650	spooler output is desired.  The file APE.ME[UP,DOC] has been  updated
43700	to  explain  all  the  new  features in detail.  You should read that
43750	file,  especially  pages  4  to  12,  before  trying  to   run   APE.
43800	Alternatively,  you can type a question mark (and carriage return) to
43850	APE at any time to get help.  Here are some of the main changes.
43900	
43950	All input lines  must  now  be  ended  with  carriage  returns  (this
44000	includes the "Y" to cause a search).
44050	
44100	Input to APE from a command file is now possible (and easy/fun).  The
44150	command file should have the name APE.CMD to be most convenient,  but
44200	any  file name is legal as is (almost) any text file format (SOS, TV,
44250	E, etc.).
44300	
44350	A "CHOOSE" feature has been added to allow you to see  the  beginning
44400	of  each  story  and  then  decide if you want to see the rest of the
44450	story.
44500	
44550	To get output to a file, you say
44600		<filename> ←
44650	followed by the usual story selection specification.
44700	
44750	To get output to the spooler, you add an "S" to the selection line.
44800	
44850	To avoid having stories typed out, for instance when they  are  being
44900	spooled, add a "D" (meaning Dont type 'em) to the selection line.
44950	
45000	[ESC] I will interrupt searches as well as typeouts now.
45050	
45100	A  couple  of  features  are written up in the documentation although
45150	they are not yet implemented.  (The writeups do say  of  course  that
45200	these features  are  unimplemented.)  The features are:  1) AUTOMATIC
45250	NOTIFICATION, whereby you can be notified whenever a story  comes  in
45300	that  matches a keyword expression you have specified; and 2) typeout
45350	of the keywords  by  which  a  story  has  been  categorized.   These
45400	features  are  written  up  in  the  hope  that  you  will  read  the
45450	descriptions now and will  understand  the  features  when  they  are
45500	implemented.
45550	
45600	*28 Jan 73	SAIL	JRL
45650	
45700	The item NIC returnedby INTERROGATE when the notice queue is empty,
45750	is now the same as the item UNBOUND used in ? FOREACHES and
45800	matching procedures.
45850		i.e.
45900			(NIC=UNBOUND) is TRUE
45950	
46000	UNBOUND has a new name BINDIT since we felt the name UNBOUND had
46050	erroneous connotations.
46100	
46150	Both NIC and UNBOUND will be allowed for a while, but you should
46200	replace them with BINDIT in your source-files.
46250	
46300	Because of these changes programs using NIC, UNBOUND should be
46350	recompiled.
46400	
46450	ANY is now an item (though it can't be used in MAKE statements).
46500	
46550	So you may now say:
46600			ITMVR ← ANY;
46650			ERASE A⊗B≡ ITMVR;
46700	which will have the same effect as 
46750			ERASE A⊗B≡ANY;
46800	ANY may be an element of a set or list.
46850	All itemvars are originally initialized to ANY.
46900	
46950	*1 Feb 73	AP NEWS (APE)	ME
47000	The keyword listing feature has now been implemented.  Add a  "W"  to
47050	the selection line to have the keywords of each story typed out ahead
47100	of the story.
47150	
47200	*22 Feb 1973	FAIL	FW
47250	Several changes have been made to FAIL:
47300	1)	CALL names are now automatically OPDEFed as their corresponding
47350		CALLIs, so CALL is virtually obsolete. This is done dynamically
47400		so it should always be up to date.
47450	2)	BEND, if given an identifier argument, now checks that argument
47500		against the name of the block it ends, and generates an error
47550		message if they mismatch. This can be used as a check on
47600		BEGIN/BEND phasing.
47650	3)	The symbol $. is now available, which is like . except that it
47700		refers to the location actually occupied by the current instruction.
47750		This differs from . inside literals or if a PHASE is in effect.
47800	4)	Declaring a symbol both INTERNAL and EXTERNAL is now an error,
47850		rather than causing FAIL to drop dead as it used to.
47900	5)	The test for too many BENDs now works properly.
47950	6)	Frequently redefined macros no longer eat up large amounts of core.
48000	
48050	*25 FEB 73	COPY	RPH
48100	
48150	New copy features:
48200	  1) If you use [p] instead of [p,pn] the current default pn is used.
48250	  2) XGPLIST, new command, equivalent to COPY XGP:←.
48300	  3) New switch for font selects, format:
48350	
48400			/FONT{#n}=<filename>{.ext}{[<p>,<pn>]}
48450	
48500		If no ext is given, FNT is assumed. If no p,pn is given
48550	  XGP,SYS is assumed.The #n is the font id number, if it is left
48600	  out, it is assumed to be 0.
48650	  4) New format for /EXTRA switch, if you use /EXTRA≡n.
48700	  (yes that's an equivalence sign), then n is the number
48750	  of scan lines to skip between text lines, not the number
48800	  of extra line feeds to insert.
48850	
48900	*4 MARCH 1973	MLISP	DAV
48950	
49000	New version of MLISP is up; old copies will be kept on MLISP.OLD
49050	and MLISPC.OLD on the system for a week or two.  Differences:
49100	  1) A couple of lingering bugs were squashed.
49150	  2) A COMMENT expression was added so that MLISP will accept TV
49200		format files.  Syntax:
49250			COMMENT <any characters except ; or unpaired " or %> ;
49300		It may occur anywhere an expression may be used, e.g.
49350			A + COMMENT A DUMB PLACE TO PUT IT; B + C
49400			BEGIN
49450			COMMENT A BETTER PLACE TO PUT IT;
49500			A + B + C;
49550			END;
49600		The old %...% comment is still around as always.
49650	  3) An updated version of the LISP compiler is included in MLISPC.
49700	  4) Insignificant change: function names are printed horizontally
49750		instead of vertically.  Don't worry, PRINT is not screwing
49800		up; that's the way it is supposed to work.
49850	
49900	*5 MARCH 1973	PUB	TES
49950	
50000	THIS NOTICE IS ABOUT 70 LINES LONG, IN DECREASING ORDER OF
50050	    IMPORTANCE.
50100	
50150	A NEW VERSION OF PUB IS UP TODAY WITH MANY REPAIRS AND A
50200	FEW CHANGES.  OLD VERSION IS PUB.OLD.  SEE TES WITH PROBLEMS.
50250	
50300	NOTE:  UNTIL THE NEXT VERSION OF PUB IS UP, XGP USERS SHOULD
50350	USE THE "DEVICE TTY" COMMAND OR THE "/T" SWITCH, ESPECIALLY
50400	IF THE PAGE FRAME IS HIGHER THAN 53 LINES.
50450	
50500	ABOUT 15 KNOWN BUGS HAVE BEEN FIXED (THANKS TO RKJ AT CMU FOR
50550	A COUPLE OF STICKLERS).  FOOTNOTES SHOULD WORK BETTER;
50600	VARIABLE DECLARATIONS WORK; CROSS-REFERENCES OF THE FORM
50650	"UNIT!" LABEL  NOW WORK; AREA TEXT AND COUNT PAGE CAN ONCE
50700	AGAIN BE DECLARED IN BLOCKS; ROMAN NUMERALS, MOD, MIN, AND,
50750	GROUP BEGIN...END, INSERT...PORTION (WITH NO SENDS), AND SOME
50800	OTHER THINGS NOW WORK WELL.  TRY OUT YOUR FAVORITE BUG.
50850	
50900	ONE BUG NOT YET FIXED: SOMETIMES PUB WILL LOOP
50950	WHEN THERE ARE AREAS DECLARED THAT DON'T START AT CHAR 1.
51000	REPORT OTHER BUGS TO TES.
51050	
51100	CHANGES AND NEW FEATURES:
51150	(1) TYPEOUT DURING COMPILATION RESEMBLES NEW SAIL'S.
51200	    NOTE: FILES LIKE 3INDE.PUZ AND 2CONT.PUG ARE GENERATED
51250	    FILES.  PAGE 1 OF TV FILES IS NOT REPORTED BY PUB.
51300	
51350	(2) THERE IS NO LONGER A BLANK PAGE AT THE BEGINNING OF LPT
51400	    DOCUMENTS.
51450	
51500	(3) NEW COMMAND TO CIRCUMVENT CHANGE (2): "BLANK PAGE N" CLOSES
51550	    THE CURRENT PGE AND LEAVES N BLANK PAGES IN THE DOCUMENT.
51600	    THE PAGE COUNTER IS NOT AFFECTED.  IF N IS OMITTED, 1 IS
51650	    ASSUMED.
51700	
51750	(4) FOR TTY USERS: INSTEAD OF CURLY BRACKETS AND HORSESHOE
51800	    BRACKETS, YOU CAN NOW USE THE FOLLOWING CHARACTER PAIRS:
51850	        $( MEANS LEFT HORSESHOE (OPEN MACRO)
51900	        )$ MEAN RIGHT HORSESHOE (CLOSE MACRO)
51950	        ]$ MEANS RIGHT BRACE (SWITCH TO TEXT MODE)
52000	    THESE ARE ONLY VALID IN COMMAND MODE AND NEED NOT BE TURNED
52050	    ON.  ON THE OTHER HAND, THE FOLLOWING CONTROL CHARACTERS
52100	    ARE ONLY RECOGNIZED IN TEXT MODE AND MUST BE TURNED ON
52150	    (OTHER CHARACTERS MAY BE TURNED ON FOR THEM):
52200	        $[ MEANS LEFT BRACE (SWITCH TO COMMAND MODE).
52250	
52300	(5) NEW FEATURE: TURN ON/OFF TAB FOR "<CHARACTER>" ;;
52350	    AS PUB READS THE MANUSCRIPT, IT SUBSTITUTES FOR EACH "TAB"
52400	    FROM ONE TO EIGHT SPACES.  THIS COMMAND CHANGES PUB SO THAT
52450	    IT SUBSTITUTES THE SINGLE CHARACTER <CHARACTER> INSTEAD.
52500	    THE COMMAND MUST BE FOLLOWED BY TWO SEMICOLONS OR ELSE IT MAY
52550	    NOT TAKE EFFECT ON THE NEXT LINE.  IF IT IS DECLARED IN A BLOCK,
52600	    THE "END" OF THE BLOCK MUST BE FOLLOWED BY TWO SEMICOLONS OR
52650	    THE ORIGINAL MEANING OF TAB MAY NOT REAPPEAR IN TIME FOR THE
52700	    NEXT LINE.
52750	
52800	(6) SINGLE SPACE, DOUBLE SPACE, AND TRIPLE SPACE NOW BREAK BEFORE
52850	    CHANGING THE VALUE OF SPREAD, SO THEY TAKE EFFECT IMMEDIATELY.
52900	
52950	SUGGESTIONS AND WARNINGS:
53000	(1) "COUNT PAGE" INITIALLIZES THE PAGE COUNTER TO NULL.  IT
53050	    GETS STEPPED TO 1 THE NEXT TIME A PAGE IS OPENED.
53100	    THIS IS WHY THE TITLE PAGE HAS A BLANK PAGE NUMBER.
53150	
53200	(2) AREA RE-DECLARATIONS DO NOT TAKE EFFECT UNTIL THE
53250	    CURRENT PAGE IS CLOSED.
53300	
53350	(3) IF YOUR DOCUMENT IS LONG, IT IS HELPFUL TO HAVE A SOURCE
53400	    FILE FOR EACH CHAPTER, AND ON EACH DEBUG RUN TO "REQUIRE"
53450	    FROM THE MAIN MANUSCRIPT FILE ONLY THOSE CHAPTER FILES THAT
53500	    YOU ARE TESTING.  GLOBAL MACROS SHOULD APPEAR IN THE MAIN
53550	    FILE OF COURSE.
53600	
53650	THE MANUAL HAS NOT BEEN CHANGED, BUT IT IS BACK ON THE DISK
53700	FOR THE BENEFIT OF NET USERS (SEE PUB.TES[S,DOC] FOR DETAILS).
53750	
53800	*9 MARCH 1973	MLISP2	DAV
53850	
53900	A new version of MLISP2 is up.  Old version is on SYS:MLISP2.OLD for
53950	a week or so.  There have been extensive changes, but most are additions
54000	so that programs shouldn't have to be altered.  The changes:
54050	
54100	  1) The code generated in the syntax part of productions is somewhat
54150		shorter and more efficient.
54200	
54250	  2) There is now a way to prevent an identifier in the syntax part of
54300		a production from being turned into a LITERAL, namely precede it
54350		with a quote mark (').
54400		Example:	{IF ...}
54450		makes IF a LITERAL, as well as generating code to check for it,
54500		but		{'IF ...}
54550		just generates the code to check for it.  In fact, any token
54600		of type identifier, number or delimiter may be included in
54650		the syntax by preceeding it with the quote mark; previously
54700		only delimiters could be so included.
54750	
54800	  3) Numbers in syntax patterns MUST now be preceeded by the quote
54850		mark; previously they could occur alone.  This should not
54900		affect anyone, since I don't know of anyone who uses numbers.
54950	
55000	  4) The syntax of FOR, WHILE and UNTIL loops has been generalized
55050		slightly:  `WHILE' and `UNTIL' are now interchangeable:
55100		Examples:	FOR NEW I IN L DO NIL UNTIL I = X;
55150				FOR NEW I IN L DO NIL WHILE I = X;
55200				DO PRINT(X) UNTIL A=B;
55250				DO PRINT(X) WHILE A=B;
55300				WHILE A=B DO PRINT(X);
55350				UNTIL A=B DO PRINT(X);
55400		In addition, the code generated by COLLECT in all of the loops
55450		is now more efficient (generates an NCONC in some cases, rather
55500		than an APPEND).
55550	
55600	  5) The DEFINE expression and the vector operator (⊗) have been
55650		added to MLISP2 to make it more compatible with MLISP
55700		(c.f. the MLISP manual).  However, the DEFINE
55750		expression is not quite as general: only prefix and infix
55800		functions may be DEFINEd, whereas MLISP would allow any
55850		symbol to be DEFINEd.
55900		Syntax:	DEFINE  <dterm>, <dterm>, ..., <dterm>	(at least 1)
55950			<dterm> ::= <identifier>  PREFIX  [<token>]  [<integer>]
56000				    <identifier>  <integer>  <integer>
56050				    <identifier>  <token>  [<integer>  <integer>]
56100		where [] means optional.
56150		The integers are binding powers for the function; only one
56200		binding power, the right binding power, needs to be specified for
56250		prefixes.  The <token>s are identifiers or delimiters which
56300		may serve as an abbreviation for the function.
56350		Examples:	DEFINE NOT PREFIX;
56400				DEFINE NOT PREFIX ¬;
56450				DEFINE NOT PREFIX 1000;
56500				DEFINE PLUS + 350 400;
56550	
56600	  6) ONLY FUNCTIONS THAT ARE EXPLICITLY DEFINE'D TO BE PREFIXES MAY
56650		NOW BE USED AS PREFIXES (I.E. WITHOUT () AROUND THEIR
56700		ARGUMENT AND WITH THE VECTOR OPERATOR ⊗)!!!  NO MORE USER-DEFINED
56750		PREFIXES UNLESS EXPLICITLY DEFINE'D!!!
56800	
56850	*16 March 1973	FREEFOROL processes Text Macros	LES
56900	Freeforol may be used to  generate  form  letters  or  other fill-in-
56950	the-blanks text.  It is described in FREEFO.LES[UP,DOC].
57000	
57050	*21 March 1973	WHERE Command	TVR
57100	Typing  WHERE  <programmer>  will  print  the  status  of  such  jobs
57150	currently logged in.  For  example,  WHERE  NET,GUE  will  WHERE  all
57200	network guests. Like WHO, this also clobbers your core image.
57250	
57300	*27 March 1973	TV ↔ E switching	DCS and FW
57350	
57400	During transition from TV to E, there will be features available
57450	  in one which are unavailable in the other.  To ease the switch,
57500	  we have installed complementary extend-mode commands:  "ETV"
57550	  in TV, "TV" in E.  Executing it will switch editors (writing 
57600	  current page first, if necessary).   The new editor will be 
57650	  editing the same file, on the same page and line, with the same
57700	   protection (readonly or readwrite).
57750	
57800	The "TV" command in E is only a special case of a much more 
57850	   glorious "RUN" feature.  For more information see TV2E.FW[UP,DOC].
57900	
57950	*4 April 1973	TALKER, FTP	DCS
58000	
58050	In response to the Site: prompt, one can type a site name or
58100	a (decimal) site number -- one way to try to find out the site
58150	name of an otherwise Anonymous site.
58200	
58250	*5 April 1973	PUB	TES
58300	Users of Jerry Agin's underground figure macros note:
58350	
58400	"MACRO SECREF" et al have a bug which was ignored by old
58450	versions of PUB but now result in the error message:
58500		"EXTRANEOUS { IN COMMAND LINE"
58550	To fix this, remove both the { and } from these particular
58600	macros.  E.G.:
58650		.MACRO SECREF ⊂ "Section " ;{SECTION! LBL} ⊃
58700	should be:
58750		.MACRO SECREF ⊂ "Section " ;SECTION! LBL ⊃
58800	
58850	If you like, this can be abbreviated:
58900		.MACRO SECREF ⊂ "Section!" LBL ⊃
58950	which did not work in old versions but now does!
59000	
59050	*8 April 73	APE, AUTOMATIC NOTIFICATION	ME
59100	
59150	If you wish to be notified each and every time an AP story  comes  in
59200	that  matches  a given keyword expression, type the expression to APE
59250	and precede it with a dollar sign ($). For example,
59300		$JUPITER*PIONEER
59350	When a story comes in that matches the expression, you will be sent a
59400	message which you will get when you login.  Also, if you  are  logged
59450	in at the time the story comes in, the message
59500		*** AP STORY FOUND ***
59550	will be typed on your console.
59600	
59650	To see what automatic notification requests you currently have,  type
59700	the  keyword expression "$" (just dollar sign) to APE.  To be able to
59750	delete these requests, type the expression "$$".  Each  request  will
59800	expire  two months after it is submitted. At that time you will get a
59850	message indicating that the request has expired.
59900	
59950	*11 APR 73	XGP	REM
60000		The currently most-useful program for printing  documents  on
60050	the  Xerox  Graphics  Printer  is MRPP3[XGP,REM] (Maas Research Paper
60100	Plotter program, version 3) which allows you to change fonts anywhere
60150	(in the middle of a word if you wish), do paragraph justification and
60200	centering, super-scripts above sub-scripts, nicely-formatted  tabular
60250	listings,  etc.   The  latest  documentation is usually posted on the
60300	bulletin board near the machine room, however if  you  want  you  own
60350	copy here is what you do:
60400	.RU MRPP3[XGP,REM]
60450	FOO.LST←MRPP3.WRU[XGP,REM]
60500	then when it is all finished and you see XG @QQXGP.RPG in  your  line
60550	editor,  hit  carriage return, wait for the device to be available if
60600	it is busy, then collect the approximately three pages as  they  come
60650	out  of the XGP (after the 2 8/10 pages of chard that comes out ahead
60700	of each listing).
60750	
60800	*9 APR 73	APE, AUTOMATIC NOTIFICATION	ME
60850	
60900	Here are some notes on using Automatic Notification for AP stories.
60950	
61000	Automatic  notification (AN)  is  intended to  be used  for  two main
61050	purposes.  1) If you are expecting an urgent story to come in  at any
61100	moment, and you want to be notified as soon as it comes  in (assuming
61150	you are logged in),  automatic notification saves you the  trouble of
61200	running APE every half  hour to find out  if your story has  come in.
61250	2) If you are expecting  a story to come  in some day, but  you don't
61300	know when, then AN saves you the effort of running APE every  day, if
61350	you wouldn't otherwise do so.
61400	
61450	If  you find  you are  being notified  about the  same kind  of story
61500	several times a day, and if the stories are not  particularly urgent,
61550	then you  will probably  find that  the normal  use of  APE, possibly
61600	using a command file (see previous section) will be  more convenient.
61650	Also, the more AN requests  there are, the more work  the continually
61700	running special  AP programs have  to do.  However,  you are  free to
61750	choose the method of using APE that best fits your purposes.
61800	
61850	One final note on AN: When you get a hit from an AN request, the best
61900	way  to use  APE  to read  the story  is  to type  in  the expression
61950	(possibly using a command file) that got the hit.  Alternatively, you
62000	can  type in  the sequence  number of  the story  found, but  this is
62050	liable to give you an extra story with the same sequence number.  You
62100	can  combine  these  two  methods  and  type  something   like  (say)
62150	"#35*CHESS", if CHESS was the  AN request getting a hit on story #35.
62200	If a story you have been notified about is more than a day or so old,
62250	then you will probably not find it with APE.  However, since the news
62300	is  spooled  every day, you should be able to find old stories in the
62350	stack of listings in the lounge (unless you are a remote user!).  For
62400	even older listings, see ME.
62450	
62500	For more details, see APE.ME[UP,DOC], special features 10, 11 and 12.
62550	
62650	*9 May 1973	FAIL	FW
62750	
62850	Several changes have been made to FAIL:
62950	
63050	1)	The CALLI opcode definer has been extended to include all
63150		UUO opcodes. Thus all existing system calls now have their
63250		mnemonics predefined in FAIL. Again, this is dynamic, so
63350		it will continue to be up-to-date with no further changes
63450		to FAIL itself.
63550	
63650	2)	A couple of new symbol constructs are available. One is
63750		SYM::, which defines SYM as a half-killed label, just
63850		as in SYM←←EXPR. Also, SYM↑ may be used anywhere SYM is
63950		legal and will make SYM either EXTERNAL or INTERNAL,
64050		depending upon whether it is defined in the program.
64150		Thus SYM↑:: makes SYM a half-killed internal label, etc.
64250		(N.B.: Any symbol which has been declared EXTERNAL will
64350		be converted to INTERNAL if and when it is defined.)
64450	
64550	3)	The PRGEND statement (from MACRO) is now available to
64650		allow multiple independent programs to be assembled
64750		within a single file. This is particularly useful for
64850		libraries. PRGEND behaves exactly like END, and similarly
64950		causes a complete assembler restart, except that I/O
65050		is undisturbed and assembly continues.